import java.util.Scanner;
import java.util.ArrayList;
/**
 * \* Created with IntelliJ IDEA.
 * \* User: Administrator
 * \* Date: 2022/2/28
 * \* Time: 21:56
 * \* To change this template use File | Settings | File Templates.
 * \* Description:
 * \
 */

class MyArray1{
    public Object[] objects = new Object[10];

    public void set(int pos, Object val){
        objects[pos] = val;
    }
    public Object get(int pos){
        return objects[pos];
    }
}

/**
 *
 * @param <T>  这个<T>代表当前类是一个泛型类，T:是一个占位符
 */
class MyArray<T extends Number>{
    //public T[] objects = new T[10];//这里不是new一个泛型数组
    //换句话说就是不能实例化泛型数组
    public T[] objects = (T[]) new Object[10];//我们在这里实例化一个Object，强制转换成T类型
    public void set(int pos, T val){
        objects[pos] = val;
    }
    public T get(int pos){
        return objects[pos];
    }
}

class Alg<T extends Comparable<T>> {
    public  T findMax(T[] array) {
        T max = array[0];
        for (int i = 1; i < array.length; i++) {
            //if(max < array[i]) { //为什么这里会报错？？
            if(max.compareTo(array[i]) < 0) {
                max = array[i];
            }
        }
        return max;
    }
}

class Max<T extends Comparable<T>> {
    public <T extends Comparable<T>> T max(T[] data) {
        T max = data[0];
        for (int i = 0; i < data.length; i++) {
            if (max.compareTo(data[i]) < 0) max = data[i];
        }
        return max;
    }
}

class Alg3{
    public static <T> void print1(ArrayList<T> list){
        for (T x:list) {
            System.out.println(x);
        }
    }
    public static void print2(ArrayList<?> list){
        for (Object x:list){
            System.out.println(x);
        }
    }
}


public class TestDemo {

    public static void main(String[] args) {
        MyArray<Integer> myArray = new MyArray();
        MyArray<Integer> myArray1 = new MyArray();
        myArray.set(0,1);
        //myArray.set(1,11); //这里会显示报错，因为存放的类型不是我们指定的String
        myArray.get(0);
       // String str = myArray.get(0);

    }

    public static void main1(String[] args) {
     //   MyArray<String> myArray1 = new MyArray();
      //  myArray1.set(0,"haha");
       // myArray1.set(1,11);
      //  myArray1.get(0);

      //  String str = myArray1.get(0);
        //问题在于我们的0下标数为字符串，所以我们在这里用的是字符串接受，可是会报错。
        //为什么呢？因为我们上面的返回方法是Object
    }
}
